package com.xcl.mapper;

import com.xcl.pojo.UpdateXclDeliveryList;
import com.xcl.pojo.XclDeliveryList;
import com.zzg.entity.Driver;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName DeliveryListMapper
 * @Description 派送列表数据访问层
 * @Author: xiaochaolei
 * @date 2021/7/14 17:17
 * @Version 1. 0
 */
@Mapper
public interface DeliveryListMapper {

    /**
     * 得到所有的派送列表信息
     * @return 派送列表集合
     */
    public List<XclDeliveryList> getXclDeliveryListAll();

    /**
     * 分页查询派送列表
     * @param page 页码数
     * @param limit 条目数
     * @return 派送列表集合
     */
    public List<XclDeliveryList> getXclDeliveryListAllByLimit(@Param(value = "page") int page, @Param(value = "limit") int limit);


    /**
     * 多条件查询
     * @param page 页码数
     * @param limit 条码数
     * @param waybill_id 运单号
     * @param sub_id 分站id
     * @param startDate 起始日期
     * @param endingDate 结束日期
     * @param ownerName 司机名称
     * @return 派送列表集合
     */
    public List<XclDeliveryList> getXclDeliveryListAllByWhere(
            @Param(value = "page") int page,
            @Param(value = "limit") int limit,
            @Param(value = "waybill_id") String waybill_id,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "startDate") String startDate,
            @Param(value = "endingDate") String endingDate,
            @Param(value = "ownerName") String ownerName
    );

    /**
     * 根据id查询到派送信息
     * @param id 派送id
     * @return 派送信息
     */
    public UpdateXclDeliveryList getUpdateXclDeliveryListByDeliveryid(@Param(value = "id") String id);

    /**
     * 根据车票牌照找到车辆信息
     * @param id 车辆牌照
     * @return 车辆信息
     */
    public Driver getDriverById(@Param(value = "id") String id);


    /**
     * 修改派送信息
     * @param deliveryDate 派送时间
     * @param substation 所在分站
     * @param sub_id 车辆id
     * @return 影响行数
     */
    public int updateXclDelivery(
            @Param(value = "deliveryDate") String deliveryDate,
            @Param(value = "substation") String substation,
            @Param(value = "sub_id") String sub_id,
            @Param(value = "delivery_id") String delivery_id);

    /**
     * 根据车牌号查询车辆信息
     * @param id 车牌号
     * @return 车辆信息
     */
    public Driver getDriverByLicenseTag(@Param(value = "id") String id);
}
